<?php


namespace app\common\lib;

use think\facade\Config;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use think\Request;

class QiUpload
{
    /**
     * 上传图片
     * @param $request
     */
    public static function qiUpload(Request $request)
    {
        // 获取上传图片信息
        $file = $request->file('file');
        // 图片存储在本地的临时路经
        $filePath = $file->getRealPath();
        // 获取图片后缀
        $ext = $file->getOriginalExtension();
        // 上传到七牛后保存的新图片名
        $newImageName = date('Y') . '/' . date('m') . '/' . substr(md5($file->getOriginalName()), 0, 6)
            . date('YmdHis') . rand(00000, 99999) . '.' . $ext;
        // 说明：为了方便阅读，上一行代码进行的回车，如果你的遇到了问题，请放到一行


        // 构建鉴权对象
        $auth = new Auth(Config::get('qiniu.ak'), Config::get('qiniu.sk'));
        // 要上传的空间位置
        $token = $auth->uploadToken(Config::get('qiniu.bucket'));
        // 初始化 UploadManager 对象并进行文件的上传。
        $uploadMgr = new UploadManager();
        list($ret, $err) = $uploadMgr->putFile($token, $newImageName, $filePath);


        if ($err !== null) {
            return null;
        } else {
            // 图片上传成功
            return $newImageName;
        }

    }
}